Facilitating installation of cables within datacenters

ABSTRACT

Methods and systems are described herein for facilitating installation of cables within datacenters without signals being sent/received from outside the datacenter buildings. In particular, the mechanism for facilitating installation of cables within datacenters may include scanning cable codes (e.g., QR codes, bar codes, near field communication (NFC) codes, radio frequency identification (RFID) codes, etc.) and retrieving path information for scanned cable codes. The mechanism then proceeds to track the installation process by scanning codes located throughout a datacenter to verify that the cable installation is proceeding correctly. In instances where a scanned code does not match a code that is expected, based on an order within the path information, an error message is generated indicating that there may be a problem with the cable installation.

BACKGROUND

Over the last decade datacenters have become larger and larger and mayhouse tens of thousands of racks. These racks need power, networking,and other types of services which are delivered via cables/wires.Currently, racks are cabled and patched manually, requiring a largenumber of cables to be routed to those racks and between those racks.The cable installation process may be time-consuming and may lead toinstallation errors. Thus, it may be advantageous to guide cableinstallers within the datacenters between start points and end pointsfor installing cables. Currently available technologies (e.g., mappingtechnologies) are not helpful in many cases because datacenters may beshielded from receiving/sending GPS and other signals to/from deviceswithin those datacenters. Accordingly, a different mechanism is requiredfor guiding cable installers during cable installation and notifyingthose installers when there may be an error with the installation.

SUMMARY

Accordingly, methods and systems are described herein for facilitatinginstallation of cables within datacenters without signals beingsent/received from outside the datacenter buildings. In particular, themechanism for facilitating installation of cables within datacenters mayinclude the use of a scanning device for scanning codes (e.g., QR codes,bar codes, near field communication (NFC) codes, radio frequencyidentification (RFID) codes, etc.). In some embodiments, the scanningdevice may be a scanner that is enabled to scan a code (e.g., a QR code)and send that code to a connected/paired computing device. In someembodiments, the scanning device may be a combination of a scanner thatis able to scan a code (e.g., a QR code) and a computing device that isable to process data as described in this disclosure. For example, ascanning device may be a wearable device (e.g., in a form of glasses,on-wrist device, or another suitable wearable device). In someembodiments, the scanning device may be a handheld device (e.g., a smartphone, an infrared scanner, or another suitable device).

A scanning device may scan a cable code associated with a cable to beinstalled. For example, an installer may be preparing to install one ormore cables within the datacenter and may open a box with a multitude ofdifferent cables or the installer may enter an area that houses thosecables. Each cable may have an attached cable code (e.g., a bar code, aQR code, or another suitable code identifying the cable). The installermay have a scanning device that is able to scan the cable code. In someembodiments, the scanning device may be a wearable device such as a formof glasses with a scanner/camera mounted onto the glasses. In someembodiments, the wearable device may be in a form of a wrist-wearabledevice with a camera and a screen. In yet some embodiments, the scanningdevice may be an infrared code scanner or another suitable scanner.

When the scanning device scans the cable code, the scanning device mayrequest and receive path information associated with the cable code. Thescanning device may detect, through a wireless connection, a datacenterdevice that stores the path information for running the cable and otherpath information for running other cables. The wireless connection maybe a Wi-Fi connection, a near field communication connection or anothersuitable connection. In some embodiments, the connection may be apoint-to-point connection. The scanning device may then transmit a cableinstall request to the datacenter device through the wirelessconnection. The cable install request may include the cable code. Inresponse, the scanning device may receive path information from thedatacenter device. The path information may be used by the installer torun the cable and may include (i) a plurality of location identifiersassociated with locations (e.g., locations within the datacenter) and(ii) an order of the locations through which the cable is to be run. Theorder may include a start location identifier, an end locationidentifier, and other location identifiers that are part of the path.For example, the path information may include a plurality of locationswithin the datacenter for the cable to be run through from the startlocation to the end location.

In some embodiments, based on scanning the code, the scanning device mayprovide a graphic to the installer showing where within the datacenterthe cable should be installed. Thus, in response to scanning the cablecode, the scanning device may retrieve one or more instructions forinstalling the cable from a start location associated with the startlocation identifier to an end location associated with the end locationidentifier through locations associated with other location identifiers.The scanning device may then generate for display those locations overthe map of the datacenter. That is, the scanning device may generate fordisplay, overlaid over a map of the datacenter, the start locationidentifier, the end location identifier, and the other locationidentifiers.

As the installer moves around the datacenter installing the cable, thescanning device may be active and may scan the environment around theuser. Thus, the scanning device may continuously monitor an environmentof the user (e.g., the installer) for a code corresponding to a pathidentifier associated with the indoor datacenter path. For example, thescanning device may be in a form of wearable glasses. As the user movesaround the datacenter and/or moves his or her head, a camera or anotherrecording device built into the glasses may monitor for a codecorresponding to a path identifier. The code may be a portion of a QRcode that can be easily detected (e.g., without decoding the full QRcode) or may be a shape and/or color that indicates an existence of apath. Not having to decode the full code may enable the scanning deviceto process images faster and save processing power and battery power bynot having to decode full codes. In some embodiments, the scanningdevice may be on the installer's wrist and may include a camera oranother type of scanner, and thus the scanning device may be moving withthe installer's wrist to scan codes that will enter the camera's fieldof view.

The installer may start installation from the start location andcontinue to other locations in order as indicated in the cable installinstructions. In some embodiments, as mentioned above, the scanningdevice may be a wearable device (e.g., in the form of glasses). Thescanning device may identify a path identifier based on a portion of acode (e.g., a portion of a QR code) so that the full code does not haveto be decoded. Thus, the scanning device may scan a detected code andattempt to locate within the detected code a predetermined portion(e.g., a predetermined pattern). The scanning device may then determine,based on the predetermined portion of the detected code, whether thedetected code corresponds to the path identifier associated with theindoor datacenter path.

In some embodiments, the scanning device may detect a predeterminedsymbol, color, or color combination to detect a path identifier. Thedetection of the symbol enables the scanning device to save resourcesand not decode the full path identifier. Thus, the scanning device maydetect an instance of a predetermined symbol indicating presence of acable path. For example, the scanning device may detect a blue circle, ablue triangle, or another shape, color, or shape/color combination. Thescanning device may determine that the instance of the predeterminedsymbol corresponds to the path identifier. For example, the scanningdevice may determine that a blue circle corresponds to the pathidentifier. The scanning device may then scan the code associated withthe instance of the predetermined symbol.

The scanning device may continue monitoring the installer's environmentuntil a code corresponding to the path identifier is located. Thus, inresponse to detecting, via continuous monitoring, a first codecorresponding to the path identifier, the scanning device may extract afirst location identifier from the first code. For example, the scanningdevice may detect a blue triangle on a sign on a wall or a beam supportof the datacenter and determine that the blue triangle corresponds tothe path of the cable. The scanning device may then detect a QR code (oranother suitable code) in association with the blue triangle (e.g., onthe same sign, below, above, next to, or in another suitable positionwith respect to the blue triangle). When the QR code is detected, thescanner may extract location information from the QR code.

The scanning device may then determine a next location for running thecable based on the order of the locations through which the cable is tobe run. The next location may be associated with a next locationidentifier within the path. For example, the installer may be runningthe cable from a start location to an end location through a multitudeof other location points within the datacenter. The scanning device maystore in memory those locations and may flag locations as the installergets passed each location. The scanner may then move to the nextlocation once a particular location has been flagged.

When the scanning device detects a path identifier and a particularlocation identifier, the scanning device may compare that location withthe next location for the cable install. Thus, in response todetermining that the first location identifier fails to match the nextlocation identifier, the scanning device may generate for display anindication that installation of the cable may be incorrect. For example,the scanning device may originally display the path of the cableinstallation overlaid over the map of the datacenter and then update thedisplay based on the order. For example, the display may include thestart location identifier, the first location identifier, and one ormore location identifiers between the start location identifier and thefirst location identifier and instructions for moving from a firstlocation associated with the first location identifier to a nextlocation associated with the next location identifier.

In some embodiments, the scanning device may determine that multiplecables may need to be run between the same locations as the scannedcable and may recommend to the installer to run those cables as well.Thus, the scanning device, based on scanning the cable code, maydetermine that one or more other cables are to be installed between thestart location and the end location. For example, the scanning devicemay perform a lookup of all cables that need to be run from the startand the end location associated with the scanned cable. The scanningdevice may then generate for display a prompt instructing the user toadjust the wearable device for scanning an area having a plurality ofcables. For example, the installer may be located in a room where amultitude of cables is staged before installation. The installer may bewearing a scanning device (e.g., glasses with a built-in camera). Thescanning device may detect other cables (e.g., based on associated cablecodes) to be installed in the same location. Thus, the scanning devicemay detect the one or more cables within the scanning area and generatefor display one or more indicators, indicating the one or more othercables. For example, the scanning device may be coupled with glassesthat are able to display augmented reality content. Thus, the glass mayindicate to the installer the appropriate cables on the glass surface.

Various other aspects, features, and advantages of the invention will beapparent through the detailed description of the invention and thedrawings attached hereto. It is also to be understood that both theforegoing general description and the following detailed description areexamples and not restrictive of the scope of the invention. As used inthe specification and in the claims, the singular forms of “a,” “an,”and “the” include plural referents unless the context clearly dictatesotherwise. In addition, as used in the specification and the claims, theterm “or” means “and/or” unless the context clearly dictates otherwise.

BRIEF DESCRIPTION

FIG. 1 shows a system for facilitating installation of cables withindatacenters, in accordance with one or more embodiments.

FIG. 2 illustrates a cable path, in accordance with one or moreembodiments.

FIG. 3 illustrates code scanning devices, in accordance with one or moreembodiments.

FIG. 4 illustrates codes, in accordance with one or more embodiments.

FIG. 5 illustrates a labelled location within the datacenter, inaccordance with one or more embodiments.

FIG. 6 shows an example computer system that may be used, in accordancewith one or more embodiments.

FIG. 7 is a flowchart of operations for generating a trained machinelearning model using low density datasets, in accordance with one ormore embodiments of this disclosure.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the embodiments of the invention. It will beappreciated, however, by those having skill in the art that theembodiments of the invention may be practiced without these specificdetails or with an equivalent arrangement. In other cases, well-knownstructures and devices are shown in block diagram form in order to avoidunnecessarily obscuring the embodiments of the invention.

FIG. 1 is an example of environment 100 for facilitating installation ofcables within datacenters. Environment 100 includes cable trackingsystem 102 and data node 104. Cable tracking system 102 may executeinstructions for facilitating installation of cables within datacenters.Cable tracking system 102 may include software, hardware, or acombination of the two. For example, cable tracking system 102 may be anapplication residing on a computing device (e.g., a personal computer, alaptop, electronic tablet, electronic glasses, etc.).

Data node 104 may store various data, including different cable pathsand/or datacenter maps. Data node 104 may include software, hardware, ora combination of the two. For example, data node 104 may be a physicalserver, or a virtual server that is running on a physical computersystem. In some embodiments, cable tracking system 102 and data node 104may be connected via a network (e.g., a wireless network). Network 150may be a local area network, a wide area network (e.g., the Internet),or a combination of the two.

Cable tracking system 102 may scan a cable code associated with a cableto be installed. Cable tracking system 102 may scan the cable code via ascanning device. For example, a scanning device may be a camera, a barcode scanner, or another suitable scanning device. The code may be aquick response (QR) code, a bar code, or another suitable code. Thescanning device may be coupled with scanning subsystem 110. Scanningsubsystem 110 may include software components, hardware components, or acombination of both. For example, scanning subsystem 110 may receivescanning data from a scanning device (e.g., as described above) andstore that scanning data in memory. Scanning subsystem 110 may then useone or more processors to interpret the scanning data and/or extract acode from the scanning data. In some embodiments, the cable code may bea QR code, a bar code, or another suitable code.

When scanning subsystem 110 receives the cable code from, for example,the scanning device, scanning subsystem 110 may initiate an operation toretrieve the datacenter path associated with the cable code. In someembodiments, in response to (or based on) scanning the cable code,communication subsystem 112 may attempt to connect to a datacenterdevice. Communication subsystem 112 may detect through a wirelessconnection of a wearable device (e.g., a user device being worn by acable installer) a datacenter device. Communication subsystem 112 maydetect the datacenter device through, for example, a Wi-Fi network or apeer-to-peer wireless connection. The datacenter device may store thepath information for running the cable and other path information forrunning other cables. The datacenter device may be data node 104.

Furthermore, scanning subsystem 110 may pass the cable code (or apointer to the cable code) to communication subsystem 112. Communicationsubsystem 112 may include software components, hardware components, or acombination of both. For example, communication subsystem 112 mayinclude a network card (e.g., a wireless network card) that is coupledwith software to drive the card. Communication subsystem 112 maygenerate a cable install request for the indoor datacenter cable path.The cable install request may include the cable code or an indication ofthe cable code. When the request has been generated, communicationsubsystem 112 may transmit the cable install request along with thecable code (or an indication of the cable code) to the datacenter device(e.g., data node 104). In some embodiments, the indication of the cablecode may be a numeric (or alphanumeric) string representing the code. Insome embodiments, communication subsystem 112 may transmit the requestin response to (or based on) receiving the cable code.

Communication subsystem 112 may receive, from the datacenter device,(e.g., from data node 104) path information for running the cable. Thepath information may include a plurality of location identifiersassociated with locations of an indoor datacenter path. The pathinformation may also include an order of the locations through which thecable is to be run, the order including a start location identifier andan end location identifier and other location identifiers of theplurality of location identifiers. FIG. 2 shows illustration 200illustrating a path of a cable that may be received. The cable may berouted using illustrated path 203. Location 206, location 209, location212, location 215, location 218, and location 221 may representlocations along the datacenter path of the cable. Location 224 andlocation 227 may represent location identifiers outside of the path.

In some embodiments, the path may be displayed using a device that ishosting cable tracking system 102. FIG. 3 illustrates two examples ofdevices that may host cable tracking system 102. Glasses 303 may be“smart glasses” that include projectors and/or another way to displaydata onto the glass. Mobile device 306 is another example of a devicethat may host cable tracking system 102. Cable tracking system 102 maydisplay the cable path onto the display of mobile device 306. In someembodiments, mobile device 306 may be mounted onto an arm of a cableinstaller or may be worn in a different way. Another example of a devicethat may host cable tracking system 102 is a smart watch, which thecable installer may wear on his/her wrist.

In some embodiments, tracking system 102 may, in response to scanningthe cable code, retrieve one or more instructions for installing thecable from a start location associated with the start locationidentifier to an end location associated with the end locationidentifier through location associated with other location identifiers.For example, when tracking system 102 (e.g., via scanning subsystem 110)retrieves location identifiers associated with the path of the cable,tracking system 102 may retrieve (e.g., from data node 104) a map of thedatacenter. The map may include location identifiers for variouslocations within the datacenter. Tracking system 102 may determine thelocation on the map matching the path locations and generate fordisplay, overlaid over a map of the datacenter, the start locationidentifier, the end location identifier, and the other locationidentifiers. For example, tracking system 102 may generate for display amap shown in FIG. 2 .

In some embodiments, scanning subsystem 110 may determine, based on thepath of the cable, that other cables should be run together with thescanned cable. For example, each cable to be run may be associated witha path identifier. The path identifier may be unique to each path. Thus,scanning subsystem 110 may transmit an additional request to thedatacenter device (e.g., data node 104) for any other cable identifiers(e.g., cable codes) that would have to be run on the same path. Scanningsubsystem 110 may receive one or more cable codes in response to therequest. Thus, based on scanning the cable code, scanning subsystem 110may determine that one or more other cables are to be installed betweenthe start location and the end location.

Based on the determination that one or more other cables are to beinstalled between the start location and the end location, scanningsubsystem 110 may generate for display a prompt instructing the user toadjust the wearable device for scanning an area having a plurality ofcables. For example, if the user (e.g., cable installer) is using smartglasses 303 (e.g., as shown in FIG. 3 ), scanning subsystem 110 maydisplay, on the lenses of the glasses, instructions indicating which wayto turn in order to start scanning other cables in an installation area.As various cables are detected within the viewing area of the glasses,scanning subsystem 110 may detect the one or more cables within thescanning area. As scanning subsystem 110 is detecting the one or morecables to be installed together with the originally scanned cable,scanning subsystem 110 may indicate to the user (e.g., the cableinstaller) to pull those cables for installation.

In some embodiments, scanning subsystem 110 (e.g., via output subsystem116) may generate for display one or more indicators, indicating the oneor more other cables. For example, scanning subsystem 110 may generatefor display cable identifiers associated with the one or more cables tobe run together with the originally scanned cable and, as those cablesare located, scanned, and pulled out of inventory, scanning subsystem110 may remove those cable identifiers from the display.

Cable tracking system 102 may start to continuously monitor anenvironment of a user of the wearable device for a code corresponding toa path identifier associated with the indoor datacenter path. In someembodiments, the user may be the cable installer that is wearing, forexample, glasses 303. Glasses 303 may be equipped with a camera oranother scanning device that is enabled to scan codes (e.g., QR codes,bar codes, near field communication (NFC) codes, radio frequencyidentification (RFID) codes, etc.), or other suitable types of codes).Thus, as the user is moving his/her head around, the camera andaccompanying software may be monitoring for a particular code. In someembodiments, the code may be a QR code, a bar code, an alphanumericcode, and/or a combination of those. In some embodiments, anothersuitable code may be used with cable tracking system 102.

FIG. 4 illustrates two codes, in accordance with some embodiments ofthis disclosure. Code 403 is illustrated as a combination code thatincludes both an alphanumeric code and a corresponding alphanumeric codeenclosed in a circle. In some embodiments, code 403 may only include thealphanumeric code without the QR code or vice versa. In someembodiments, encircling of the code may indicate a particular locationwhile inserting the code into a square or another suitable shape mayindicate another particular location. In some embodiments, the enclosingshapes (e.g., circles, triangles, rectangles) may indicate a particularcharacteristic of a location. Code 406 is another example of a code thatis enclosed in a square with both a QR code and an alphanumeric code.

In some embodiments, the enclosing shapes (e.g., circles, triangles,squares, etc.) may be used to identify presence of the code withoutdecoding the code. For example, location detection subsystem 114 mayscan a detected code (e.g., an image of the code or another suitablerepresentation of the detected code). The location detection subsystem114 may decode a predetermined portion of the detected code anddetermine, based on the predetermined portion of the detected code,whether the detected code corresponds to the path identifier associatedwith the indoor datacenter path. In some embodiments, the predeterminedportion of detected code may be the enclosing shape. For example, thedatacenter path for the cable may be a path that includes locationsassociated with an enclosing circle. Thus, location detection subsystem114 may detect the enclosing circle within the image to determine thatthe detected code corresponds to the path identifier associated with theindoor datacenter path. In some embodiments, location detectionsubsystem 114 may detect a portion of the QR code to indicate thedatacenter path.

In some embodiments, instead of or in addition to the enclosing shapes,location detection subsystem 114 may use a predetermined symbol orsymbols to detect path identifiers. A symbol may be a stand-alone symbolin the vicinity of the code or may be part of the code (e.g., part of aQR code). Thus, location detection subsystem 114 may detect an instanceof a predetermined symbol corresponding to any path identifier. In someembodiments, the symbol may be an encircling shape or a shape of aparticular color. Location detection subsystem 114 may scan the codeassociated with the instance of the predetermined symbol.

Location detection subsystem 114 may, in response to detecting, viacontinuous monitoring, a first code corresponding to the pathidentifier, extract a first location identifier from the first code.Location detection subsystem 114 may include software components,hardware components, or a combination of both. For example, locationdetection subsystem 114 may include software components that access datain memory and/or storage, and may use one or more processors to performits operations. FIG. 5 illustrates a code 502 attached to a cable tray504. Various cables may be run through cable tray 504. For example, code502 may correspond to location 206 illustrated in FIG. 2 . To extractthe first location identifier, location detection subsystem 114 may readthe QR code, the bar code, or another suitable code. The locationidentifier may correspond to coordinates within the datacenter. In someembodiments, a location identifier may correspond to a particular rackrow and/or rack column.

In some embodiments, when the installation of the cable has started,location detection subsystem 114 may determine that the first locationidentifier does not match the start location. In that case, locationdetection subsystem 114 may direct the cable installer to the startlocation of the cable install (e.g., location 206). In some embodiments,location detection subsystem 114 may ask the cable installer to confirm(e.g., via user input) whether the cable installer is in the correctlocation.

Location detection subsystem 114 may determine a next location forrunning the cable based on the order of the locations through which thecable is to be run. The next location may be associated with a nextlocation identifier of the plurality of location identifiers. Forexample, by previously scanning a code at location 212 of FIG. 2 ,location detection subsystem 114 may have determined that it is at aparticular location with the cable path. Location detection subsystem114 may iterate through a data structure storing the path location anddetermine that location 215 should be the next location within the path.Location 215 may be associated with a particular code. Thus, locationdetection subsystem 114 may compare a location identifier associatedwith location 215 with a location identifier associated with the firstlocation (a scanned identifier). If the location identifiers match,location detection subsystem 114 may determine that the cableinstallation process is on the correct path. Location detectionsubsystem 114 may determine whether location identifiers match bycomparing location identifiers corresponding to the code (e.g., locationidentifier corresponding to the scanned code and the next locationidentifier corresponding to the next code within the received datacenterpath). For example, each code may be associated with a correspondinglocation identifier. Thus, location detection subsystem 114 may extractthe code from an image (e.g., recorded by the camera within a userdevice) and determine a corresponding location for that code. Locationdetection subsystem 114 may compare that location with the locationassociated with the cable path.

In response to determining that the first location identifier fails tomatch the next location identifier, cable tracking system 102 may (e.g.,via output subsystem 116) generate for display an indication thatinstallation of the cable may be incorrect. Output subsystem 116 mayinclude software components, hardware components, or a combination ofboth. For example, output subsystem 116 may include software componentsthat access data in memory and/or storage, and may use one or moreprocessors to display information onto a display. In some embodiments,output subsystem 116 may generate a particular display and transmit thatdisplay to another device. For example, location detection subsystem 114may generate for display an error message indicating, to the cableinstaller, that the cable installation may not be proceeding correctly.In some embodiments, the error message may indicate an expectedlocation, determined based on the prior scanned code, and the actuallocation, based on the newest scanned code). In some embodiments,location detection subsystem 114 may generate an audio messageindicating, to the cable installer, that the cable installation may notbe proceeding correctly.

In some embodiments, output subsystem 116 may update a displayed mapbased on the scanned location and the expected location. For example,when the cable code was scanned, output subsystem 116 may have generatedfor display a map shown in FIG. 2 with cable path 203 overlaid on themap. The updated map may include the path and also include the lastscanned location (e.g., if location 224 was scanned). Thus, the outputsubsystem may update, based on the order, a display overlaid over a mapof the datacenter. The updated display may include (1) the startlocation identifier, the first location identifier, and one or morelocation identifiers between the start location identifier and the firstlocation identifier and (2) instructions for moving from a firstlocation associated with the first location identifier to a nextlocation associated with the next location identifier. In someembodiments, the instructions may be displayed on a display. In someembodiments, the instructions may, additionally or alternatively, beoutput via a speaker.

In another scenario, cable tracking system may detect location 209(e.g., based on scanning the corresponding code) followed by location215 (based on scanning the next corresponding code). Thus, cabletracking system 102 may determine that the installer somehow skipped alocation. Cable tracking system 102 may prompt the cable installer toindicate whether the location was skipped or whether the code associatedwith that location was not scanned. In response to detecting that thecable installer indicated that the code was not scanned, cable trackingsystem 102 may update the installation tracking process to indicate thatthe skipped location was not skipped.

Computing Environment

FIG. 6 shows an example computing system that may be used in accordancewith some embodiments of this disclosure. In some instances, computersystem 600 is referred to as a computing system 600. Computer system 600may be part of a user device (e.g., part of smart glasses or a smartphone). A person skilled in the art would understand that those termsmay be used interchangeably. The components of FIG. 6 may be used toperform some or all operations discussed in relation with FIGS. 1-5 .Furthermore, various portions of the systems and methods describedherein may include or be executed on one or more computer systemssimilar to computer system 600. Further, processes and modules describedherein may be executed by one or more processing systems similar to thatof computing system 600.

Computing system 600 may include one or more processors (e.g.,processors 610 a-610 n) coupled to system memory 620, an input/outputI/O device interface 630, and a network interface 640 via aninput/output (I/O) interface 650. A processor may include a singleprocessor, or a plurality of processors (e.g., distributed processors).A processor may be any suitable processor capable of executing orotherwise performing instructions. A processor may include a centralprocessing unit (CPU) that carries out program instructions to performthe arithmetical, logical, and input/output operations of computingsystem 600. A processor may execute code (e.g., processor firmware, aprotocol stack, a database management system, an operating system, or acombination thereof) that creates an execution environment for programinstructions. A processor may include a programmable processor. Aprocessor may include general or special purpose microprocessors. Aprocessor may receive instructions and data from a memory (e.g., systemmemory 620). Computing system 600 may be a uni-processor systemincluding one processor (e.g., processor 610 a), or a multi-processorsystem including any number of suitable processors (e.g., 610 a-610 n).Multiple processors may be employed to provide for parallel orsequential execution of one or more portions of the techniques describedherein. Processes, such as logic flows, described herein may beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating corresponding output. Processes described herein may beperformed by, and apparatus can also be implemented as, special purposelogic circuitry (e.g., an FPGA (field-programmable gate array) or anASIC (application-specific integrated circuit)). Computer system 600 mayinclude a plurality of computing devices (e.g., distributed computersystems) to implement various processing functions.

I/O device interface 630 may provide an interface for connection of oneor more I/O devices 660 to computer system 600. I/O devices may includedevices that receive input (e.g., from a user) or output information(e.g., to a user). I/O devices 660 may include, for example, a graphicaluser interface presented on displays (e.g., a cathode ray tube (CRT) orliquid crystal display (LCD) monitor), pointing devices (e.g., acomputer mouse or trackball), keyboards, keypads, touchpads, scanningdevices, voice recognition devices, gesture recognition devices,printers, audio speakers, microphones, cameras, or the like. I/O devices660 may be connected to computer system 600 through a wired or wirelessconnection. I/O devices 660 may be connected to computer system 600 froma remote location. I/O devices 660 located on remote computer systems,for example, may be connected to computer system 600 via a network andnetwork interface 640.

Network interface 640 may include a network adapter that provides forconnection of computer system 600 to a network. Network interface 640may facilitate data exchange between computer system 600 and otherdevices connected to the network. Network interface 640 may supportwired or wireless communication. The network may include an electroniccommunication network, such as the Internet, a local area network (LAN),a wide area network (WAN), a cellular communications network, or thelike.

System memory 620 may be configured to store program instructions 670 ordata 680. Program instructions 670 may be executable by a processor(e.g., one or more of processors 610 a-610 n) to implement one or moreembodiments of the present techniques. Instructions 670 may includemodules of computer program instructions for implementing one or moretechniques described herein with regard to various processing modules.Program instructions may include a computer program (which in certainforms is known as a program, software, software application, script, orcode). A computer program may be written in a programming language,including compiled or interpreted languages, or declarative orprocedural languages. A computer program may include a unit suitable foruse in a computing environment, including as a stand-alone program, amodule, a component, or a subroutine. A computer program may or may notcorrespond to a file in a file system. A program may be stored in aportion of a file that holds other programs or data (e.g., one or morescripts stored in a markup language document), in a single filededicated to the program in question, or in multiple coordinated files(e.g., files that store one or more modules, subprograms, or portions ofcode). A computer program may be deployed to be executed on one or morecomputer processors located locally at one site, or distributed acrossmultiple remote sites and interconnected by a communication network.

System memory 620 may include a tangible program carrier having programinstructions stored thereon. A tangible program carrier may include anon-transitory computer readable storage medium. A non-transitorycomputer readable storage medium may include a machine-readable storagedevice, a machine-readable storage substrate, a memory device, or anycombination thereof. Non-transitory computer readable storage medium mayinclude non-volatile memory (e.g., flash memory, ROM, PROM, EPROM,EEPROM memory), volatile memory (e.g., random access memory (RAM),static random access memory (SRAM), synchronous dynamic RAM (SDRAM)),bulk storage memory (e.g., CD-ROM and/or DVD-ROM, hard drives), or thelike. System memory 620 may include a non-transitory computer readablestorage medium that may have program instructions stored thereon thatare executable by a computer processor (e.g., one or more of processors610 a-610 n) to cause the subject matter and the functional operationsdescribed herein. A memory (e.g., system memory 620) may include asingle memory device and/or a plurality of memory devices (e.g.,distributed memory devices).

I/O interface 650 may be configured to coordinate I/O traffic betweenprocessors 610 a-610 n, system memory 620, network interface 640, I/Odevices 660, and/or other peripheral devices. I/O interface 650 mayperform protocol, timing, or other data transformations to convert datasignals from one component (e.g., system memory 620) into a formatsuitable for use by another component (e.g., processors 610 a-610 n).I/O interface 650 may include support for devices attached throughvarious types of peripheral buses, such as a variant of the PeripheralComponent Interconnect (PCI) bus standard or the Universal Serial Bus(USB) standard.

Embodiments of the techniques described herein may be implemented usinga single instance of computer system 600, or multiple computer systems600 configured to host different portions or instances of embodiments.Multiple computer systems 600 may provide for parallel or sequentialprocessing/execution of one or more portions of the techniques describedherein.

Those skilled in the art will appreciate that computer system 600 ismerely illustrative, and is not intended to limit the scope of thetechniques described herein. Computer system 600 may include anycombination of devices or software that may perform or otherwise providefor the performance of the techniques described herein. For example,computer system 600 may include or be a combination of a cloud computingsystem, a data center, a server rack, a server, a virtual server, adesktop computer, a laptop computer, a tablet computer, a server device,a client device, a mobile telephone, a personal digital assistant (PDA),a mobile audio or video player, a game console, a vehicle-mountedcomputer, or a Global Positioning System (GPS), or the like. Computersystem 600 may also be connected to other devices that are notillustrated, or may operate as a stand-alone system. In addition, thefunctionality provided by the illustrated components may, in someembodiments, be combined in fewer components, or distributed inadditional components. Similarly, in some embodiments, the functionalityof some of the illustrated components may not be provided, or otheradditional functionality may be available.

Operation Flow

FIG. 7 is a flowchart 700 of operations for improving documents. Theoperations of FIG. 7 may use components described in relation to FIG. 6. In some embodiments, cable tracking system 102 may include one or morecomponents of computer system 600. As discussed above, in someembodiments, the scanning device may be a scanner that is enabled toscan a code (e.g., a QR code) and send that code to a connected/pairedcomputing device (e.g., wirelessly or using a wire). Thus, at 702, cabletracking system scans a cable code associated with a cable to beinstalled. For example, cable tracking system 102 may use I/O deviceinterface 630 to interface with a scanning device (e.g., I/O device660). Cable tracking system 102 may instruct the I/O device to scan thecable and may receive a scanned cable code (e.g., via I/O deviceinterface 630). Cable tracking system 102 may store the received cablecode in system memory 620.

At 704, cable tracking system 102 receives path information for runningthe cable. For example, cable tracking system 102 may receive the pathinformation from a data node 104. Cable tracking system 102 may receivethe path information over network 150 using network interface 640. At706, cable tracking system 102 continuously monitors an environment of auser of the wearable device for a code corresponding to a pathidentifier associated with the indoor datacenter path. Cable trackingsystem 102 may instruct a camera or another suitable scanner (e.g., I/Odevice 660) to continually scan the environment. Cable tracking system102 may use one or more processors 610 a, 610 b, and/or 610 n to processresults of the scanning.

At 708, cable tracking system 102 extracts a first location identifierfrom the first code. Cable tracking system 102 may receive the firstcode from a scanning device (e.g., I/O device 660 via I/O interface 630)and store that first code in system memory 620. Cable tracking system102 may use one or more processors (e.g., processor 610 a) to performthe extraction operation. At 710, cable tracking system 102 determines anext location for running the cable based on the order of the locationsthrough which the cable is to be run. Cable tracking system 102 may useone or more processors (e.g., processor 610 a) to perform thisoperation. At 712, cable tracking system 102 generates for display anindication that installation of the cable may be incorrect. Cabletracking system 102 may use one or more processors (e.g., processor 610a) to generate a display and send the generated display to a displaydevice. For example, the display device may be connected via I/O deviceinterface 630. Thus, cable tracking system 102 may use I/O deviceinterface 630 to send the display.

Although the present invention has been described in detail for thepurpose of illustration based on what is currently considered to be themost practical and preferred embodiments, it is to be understood thatsuch detail is solely for that purpose and that the invention is notlimited to the disclosed embodiments, but, on the contrary, is intendedto cover modifications and equivalent arrangements that are within thescope of the appended claims. For example, it is to be understood thatthe present invention contemplates that, to the extent possible, one ormore features of any embodiment can be combined with one or morefeatures of any other embodiment.

The above-described embodiments of the present disclosure are presentedfor purposes of illustration, and not of limitation, and the presentdisclosure is limited only by the claims which follow. Furthermore, itshould be noted that the features and limitations described in any oneembodiment may be applied to any other embodiment herein, and flowchartsor examples relating to one embodiment may be combined with any otherembodiment in a suitable manner, done in different orders, or done inparallel. In addition, the systems and methods described herein may beperformed in real time. It should also be noted that the systems and/ormethods described above may be applied to, or used in accordance with,other systems and/or methods.

The present techniques will be better understood with reference to thefollowing enumerated embodiments:

-   -   1. A method comprising: scanning a cable code associated with a        cable to be installed; receiving path information for running        the cable, the path information comprising (i) a plurality of        location identifiers associated with locations of an indoor        datacenter path and (ii) an order of the locations through which        the cable is to be run, the order comprising a start location        identifier and an end location identifier and other location        identifiers of the plurality of location identifiers;        continuously monitoring an environment of a user of the wearable        device for a code corresponding to a path identifier associated        with the indoor datacenter path; in response to detecting, via        continuous monitoring, a first code corresponding to the path        identifier, extracting a first location identifier from the        first code; determining a next location for running the cable        based on the order of the locations through which the cable is        to be run, wherein the next location is associated with a next        location identifier of the plurality of location identifiers;        and in response to determining that the first location        identifier fails to match the next location identifier,        generating for display an indication that installation of the        cable may be incorrect.    -   2. Any of the proceeding embodiments, further comprising:        wherein generating for display the indication that installation        of the cable may be incorrect comprises: updating, based on the        order, a display overlaid over a map of the datacenter to        include (1) the start location identifier, the first location        identifier, and one or more location identifiers between the        start location identifier and the first location identifier        and (2) instructions for moving from a first location associated        with the first location identifier to a next location associated        with the next location identifier.    -   3. Any of the proceeding embodiments, wherein each code        comprises a QR code, or a bar code.    -   4. Any of the proceeding embodiments, further comprising: based        on scanning the cable code, determining that one or more other        cables are to be installed between the start location and the        end location; generating for display a prompt instructing the        user to adjust the wearable device for scanning an area having a        plurality of cables; detecting the one or more cables within the        scanning area; and generating for display one or more        indicators, indicating the one or more other cables.    -   5. Any of the proceeding embodiments, wherein continuously        monitoring the environment of the user of the wearable device        for the code corresponding to the path identifier associated        with the indoor datacenter path further comprises: scanning a        detected code; decoding a predetermined portion of the detected        code; and determining, based on the predetermined portion of the        detected code, whether the detected code corresponds to the path        identifier associated with the indoor datacenter path.    -   6. Any of the proceeding embodiments, wherein continuously        monitoring the environment of the user of the wearable device        for the code corresponding to the path identifier associated        with the indoor datacenter path further comprises: detecting an        instance of a predetermined symbol corresponding to any path        identifier; and scanning the code associated with the instance        of the predetermined symbol.    -   7. Any of the proceeding embodiments, further comprising: in        response to scanning the cable code, retrieving one or more        instructions for installing the cable from a start location        associated with the start location identifier to an end location        associated with the end location identifier through location        associated with other location identifiers; and generating for        display, overlaid over a map of the datacenter, the start        location identifier, the end location identifier, and the other        location identifiers.    -   8. Any of the proceeding embodiments, wherein receiving the path        information for running the cable comprises: detecting through a        wireless connection of a wearable device a datacenter device,        wherein the datacenter device stores the path information for        running the cable and other path information for running other        cables; transmitting a cable install request to the datacenter        device through the wireless connection, wherein the cable        install request comprises the cable code; and receiving the path        information from the datacenter device.    -   9. A tangible, non-transitory, machine-readable medium storing        instructions that, when executed by a data processing apparatus,        cause the data processing apparatus to perform operations        comprising those of any of embodiments 1-8.    -   0. A system comprising: one or more processors; and memory        storing instructions that, when executed by the processors,        cause the processors to effectuate operations comprising those        of any of embodiments 1-8.    -   11. A system comprising means for performing any of embodiments        1-8.    -   12. A system comprising cloud-based circuitry for performing any        of embodiments 1-8.

What is claimed is:
 1. A wearable device for facilitating installationof cables within datacenters, the wearable device comprising: one ormore processors; and a non-transitory computer-readable storage mediumstoring instructions, which when executed by the one or more processorscause the one or more processors to perform operations comprising: inresponse to scanning a cable QR code associated with a cable, receiving,from a datacenter device within a datacenter, path information forrunning the cable, the path information comprising (i) a plurality oflocation identifiers associated with locations of an indoor datacenterpath and (ii) an order of the locations through which the cable is to berun, the order comprising start and end location identifiers and otherlocation identifiers of the plurality of location identifiers; inresponse to scanning the cable QR code, continuously monitoring anenvironment of a user of the wearable device for a QR code correspondingto a path identifier associated with the indoor datacenter path; inresponse to detecting, via continuous monitoring, a first QR codecorresponding to the path identifier, extracting a first locationidentifier from the first QR code; determining a next location forrunning the cable based on the order of the locations through which thecable is to be run, wherein the next location is associated with a nextlocation identifier of the plurality of location identifiers; inresponse to determining that the first location identifier fails tomatch the next location identifier updating, based on the order, adisplay overlaid over a map of the datacenter to include (1) the startlocation identifier, the first location identifier, and one or morelocation identifiers between the start location identifier and the firstlocation identifier and (2) instructions for moving from a firstlocation associated with the first location identifier to a nextlocation associated with the next location identifier.
 2. The system ofclaim 1, wherein the instructions further cause the one or moreprocessors to perform operations comprising: based on scanning the cableQR code, determining that one or more other cables are to be installedbetween the start location and the end location; generating for displaya prompt instructing the user to adjust the wearable device for scanningan area having a plurality of cables; detecting the one or more cableswithin the scanning area; and generating for display one or moreindicators, indicating the one or more other cables.
 3. The system ofclaim 1, wherein the instructions for continuously monitoring theenvironment of the user of the wearable device for the QR codecorresponding to the path identifier associated with the indoordatacenter path further cause the one or more processors to performoperations comprising: scanning a detected QR code; decoding apredetermined portion of the detected QR code; and determining, based onthe predetermined portion of the detected QR code, whether the detectedQR code corresponds to the path identifier associated with the indoordatacenter path.
 4. The system of claim 1, wherein the instructions forcontinuously monitoring the environment of the user of the wearabledevice for the QR code corresponding to the path identifier associatedwith the indoor datacenter path further cause the one or more processorsto perform operations comprising: detecting an instance of apredetermined symbol corresponding to any path identifier; and scanningthe QR code associated with the instance of the predetermined symbol. 5.A method comprising: scanning a cable code associated with a cable to beinstalled; receiving path information for running the cable, the pathinformation comprising (i) a plurality of location identifiersassociated with locations of an indoor datacenter path and (ii) an orderof the locations through which the cable is to be run, the ordercomprising a start location identifier and an end location identifierand other location identifiers of the plurality of location identifiers;continuously monitoring an environment of a user of the wearable devicefor a code corresponding to a path identifier associated with the indoordatacenter path; in response to detecting, via continuous monitoring, afirst code corresponding to the path identifier, extracting a firstlocation identifier from the first code; determining a next location forrunning the cable based on the order of the locations through which thecable is to be run, wherein the next location is associated with a nextlocation identifier of the plurality of location identifiers; and inresponse to determining that the first location identifier fails tomatch the next location identifier, generating an indication thatinstallation of the cable may be incorrect.
 6. The method of claim 5,wherein generating the indication that installation of the cable may beincorrect comprises: updating, based on the order, a display overlaidover a map of the datacenter to include (1) the start locationidentifier, the first location identifier, and one or more locationidentifiers between the start location identifier and the first locationidentifier and (2) instructions for moving from a first locationassociated with the first location identifier to a next locationassociated with the next location identifier.
 7. The method of claim 5,wherein each code comprises a QR code, or a bar code.
 8. The method ofclaim 5, further comprising: based on scanning the cable code,determining that one or more other cables are to be installed betweenthe start location and the end location; generating for display a promptinstructing the user to adjust the wearable device for scanning an areahaving a plurality of cables; detecting the one or more cables withinthe scanning area; and generating for display one or more indicators,indicating the one or more other cables.
 9. The method of claim 5,wherein continuously monitoring the environment of the user of thewearable device for the code corresponding to the path identifierassociated with the indoor datacenter path further comprises: scanning adetected code; decoding a predetermined portion of the detected code;and determining, based on the predetermined portion of the detectedcode, whether the detected code corresponds to the path identifierassociated with the indoor datacenter path.
 10. The method of claim 5,wherein continuously monitoring the environment of the user of thewearable device for the code corresponding to the path identifierassociated with the indoor datacenter path further comprises: detectingan instance of a predetermined symbol corresponding to any pathidentifier; and scanning the code associated with the instance of thepredetermined symbol.
 11. The method of claim 5, further comprising: inresponse to scanning the cable code, retrieving one or more instructionsfor installing the cable from a start location associated with the startlocation identifier to an end location associated with the end locationidentifier through a location associated with other locationidentifiers; and generating for display, overlaid over a map of thedatacenter, the start location identifier, the end location identifier,and the other location identifiers.
 12. The method of claim 5, whereinreceiving the path information for running the cable comprises:detecting through a wireless connection of a wearable device adatacenter device, wherein the datacenter device stores the pathinformation for running the cable and other path information for runningother cables; transmitting a cable install request to the datacenterdevice through the wireless connection, wherein the cable installrequest comprises the cable code; and receiving the path informationfrom the datacenter device.
 13. A non-transitory, computer-readablemedium comprising instructions for facilitating installation of cableswithin datacenters, that when executed by one or more processors, causethe one or more processors to perform operations comprising: scanning acable code associated with a cable to be installed; receiving pathinformation for running the cable, the path information comprising (i) aplurality of location identifiers associated with locations of an indoordatacenter path and (ii) an order of the locations through which thecable is to be run, the order comprising a start location identifier andan end location identifier and other location identifiers of theplurality of location identifiers; continuously monitoring anenvironment of a user of the wearable device for a code corresponding toa path identifier associated with the indoor datacenter path; inresponse to detecting, via continuous monitoring, a first codecorresponding to the path identifier, extracting a first locationidentifier from the first code; determining a next location for runningthe cable based on the order of the locations through which the cable isto be run, wherein the next location is associated with a next locationidentifier of the plurality of location identifiers; and in response todetermining that the first location identifier fails to match the nextlocation identifier, generating an indication that installation of thecable may be incorrect.
 14. The non-transitory, computer-readable mediumof claim 13, wherein the instructions for generating the indication thatinstallation of the cable may be incorrect further cause the one or moreprocessors to perform operations comprising: updating, based on theorder, a display overlaid over a map of the datacenter to include (1)the start location identifier, the first location identifier, and one ormore location identifiers between the start location identifier and thefirst location identifier and (2) instructions for moving from a firstlocation associated with the first location identifier to a nextlocation associated with the next location identifier.
 15. Thenon-transitory, computer-readable medium of claim 13, wherein each codecomprises a QR code or a bar code.
 16. The non-transitory,computer-readable medium of claim 13, wherein the instructions furthercause the one or more processors to perform operations comprising: basedon scanning the cable code, determining that one or more other cablesare to be installed between the start location and the end location;generating for display a prompt instructing the user to adjust thewearable device for scanning an area having a plurality of cables;detecting the one or more cables within the scanning area; andgenerating for display one or more indicators, indicating the one ormore other cables.
 17. The non-transitory, computer-readable medium ofclaim 13, wherein the instructions for continuously monitoring theenvironment of the user of the wearable device for the codecorresponding to the path identifier associated with the indoordatacenter path further cause the one or more processors to performoperations comprising: scanning a detected code; decoding apredetermined portion of the detected code; and determining, based onthe predetermined portion of the detected code, whether the detectedcode corresponds to the path identifier associated with the indoordatacenter path.
 18. The non-transitory, computer-readable medium ofclaim 13 wherein the instructions for continuously monitoring theenvironment of the user of the wearable device for the codecorresponding to the path identifier associated with the indoordatacenter path further cause the one or more processors to performoperations comprising: detecting an instance of a predetermined symbolcorresponding to any path identifier; and scanning the code associatedwith the instance of the predetermined symbol.
 19. The non-transitory,computer-readable medium of claim 13, wherein the instructions furthercause the one or more processors to perform operations comprising: inresponse to scanning the cable code, retrieving one or more instructionsfor installing the cable from a start location associated with the startlocation identifier to an end location associated with the end locationidentifier through location associated with other location identifiers;and generating for display, overlaid over a map of the datacenter, thestart location identifier, the end location identifier, and the otherlocation identifiers.
 20. The non-transitory, computer-readable mediumof claim 13, wherein the instructions for receiving the path informationfor running the cable further cause the one or more processors toperform operations comprising: detecting through a wireless connectionof a wearable device a datacenter device, wherein the datacenter devicestores the path information for running the cable and other pathinformation for running other cables; transmitting a cable installrequest to the datacenter device through the wireless connection,wherein the cable install request comprises the cable code; andreceiving the path information from the datacenter device.